const sass = require('sass')
const loadGruntTasks = require('load-grunt-tasks')

module.exports = grunt=>{
  grunt.initConfig({
    clean:{
      temp:'temp/app.js',
      // temp:'temp/*.txt',
      // temp:'temp/**'  //包含temp文件夹的子目录和子目录所有文件
    },
    sass:{
      options:{
        sourceMap:true,
        implementation:sass //Fatal error: The implementation option must be passed to the Sass task
      },
      main:{ //任务目标
        files:{
          'dist/css/main.css':'src/scss/main.scss'
        }
      }
    },
    babel:{
      options:{ //preset把需要转的特性打了个包 preset-evn根据最新的es6特性进行转换
        presets:['@babel/preset-env'],
        sourceMap:true
      },
      main:{
        files:{
          'dist/js/app.js':'src/js/app.js'
        }
      }
    },
    watch:{ //配置监视
      js:{
        files:['src/js/*.js'],
        tasks:['babel'] //监视到files文件内的内容改变，则执行对应插件
      },
      css:{
        files:['src/scss/*.scss'],
        tasks:['sass']
      }
    }
  })

  // grunt.loadNpmTasks('grunt-contrib-clean')

  // grunt.loadNpmTasks('grunt-sass')
  
  // grunt.loadNpmTasks('grunt-babel')//引入load-grunt-tasks包解决每个插件都要引入一次的问题

  loadGruntTasks(grunt) //自动加载所有的grunt 插件中的任务

  grunt.registerTask('default',['sass','babel','watch']) //注册默认任务，在监视前先执行一次
}







//yarn grunt clean
//yarn grunt sass 多了个dist目录
//yarn grunt babel
//yarn grunt watch 启动服务器,文件变化时会执行